<!DOCTYPE html>
<html lang="zh-cn"><head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Python生成二维码脚本 - Tacey Wong - 博客园</title>
<link type="text/css" rel="stylesheet" href="Python%E7%94%9F%E6%88%90%E4%BA%8C%E7%BB%B4%E7%A0%81%E8%84%9A%E6%9C%AC%20-%20Tacey%20Wong%20-%20%E5%8D%9A%E5%AE%A2%E5%9B%AD_files/blog-common.css">
<link id="MainCss" type="text/css" rel="stylesheet" href="Python%E7%94%9F%E6%88%90%E4%BA%8C%E7%BB%B4%E7%A0%81%E8%84%9A%E6%9C%AC%20-%20Tacey%20Wong%20-%20%E5%8D%9A%E5%AE%A2%E5%9B%AD_files/bundle-BlueSky.css">
<link id="mobile-style" media="only screen and (max-width: 768px)" type="text/css" rel="stylesheet" href="Python%E7%94%9F%E6%88%90%E4%BA%8C%E7%BB%B4%E7%A0%81%E8%84%9A%E6%9C%AC%20-%20Tacey%20Wong%20-%20%E5%8D%9A%E5%AE%A2%E5%9B%AD_files/bundle-BlueSky-mobile.css">
<link title="RSS" type="application/rss+xml" rel="alternate" href="http://www.cnblogs.com/taceywong/rss">
<link title="RSD" type="application/rsd+xml" rel="EditURI" href="http://www.cnblogs.com/taceywong/rsd.xml">
<link type="application/wlwmanifest+xml" rel="wlwmanifest" href="http://www.cnblogs.com/taceywong/wlwmanifest.xml">
<script type="text/javascript" async="" src="Python%E7%94%9F%E6%88%90%E4%BA%8C%E7%BB%B4%E7%A0%81%E8%84%9A%E6%9C%AC%20-%20Tacey%20Wong%20-%20%E5%8D%9A%E5%AE%A2%E5%9B%AD_files/map.js"></script><script src="Python%E7%94%9F%E6%88%90%E4%BA%8C%E7%BB%B4%E7%A0%81%E8%84%9A%E6%9C%AC%20-%20Tacey%20Wong%20-%20%E5%8D%9A%E5%AE%A2%E5%9B%AD_files/jquery.js" type="text/javascript"></script>  
<script type="text/javascript">var currentBlogApp = 'taceywong', cb_enable_mathjax=false;var isLogined=false;</script>
<script src="Python%E7%94%9F%E6%88%90%E4%BA%8C%E7%BB%B4%E7%A0%81%E8%84%9A%E6%9C%AC%20-%20Tacey%20Wong%20-%20%E5%8D%9A%E5%AE%A2%E5%9B%AD_files/blog-common.js" type="text/javascript"></script>
<script type="text/javascript" src="Python%E7%94%9F%E6%88%90%E4%BA%8C%E7%BB%B4%E7%A0%81%E8%84%9A%E6%9C%AC%20-%20Tacey%20Wong%20-%20%E5%8D%9A%E5%AE%A2%E5%9B%AD_files/jquery-1.js"></script></head>
<body>
<a name="top"></a>

<!--done-->
<div id="home">
<div id="header">
	<div id="blogTitle">
	<a id="lnkBlogLogo" href="http://www.cnblogs.com/taceywong/"><img id="blogLogo" src="Python%E7%94%9F%E6%88%90%E4%BA%8C%E7%BB%B4%E7%A0%81%E8%84%9A%E6%9C%AC%20-%20Tacey%20Wong%20-%20%E5%8D%9A%E5%AE%A2%E5%9B%AD_files/logo.gif" alt="返回主页"></a>			
		
<!--done-->
<h1><a id="Header1_HeaderTitle" class="headermaintitle" href="http://www.cnblogs.com/taceywong/">Tacey Wong</a></h1>
<h2></h2>



		
	</div><!--end: blogTitle 博客的标题和副标题 -->
	<div id="navigator">
		
<ul id="navList">
<li><a id="blog_nav_sitehome" class="menu" href="http://www.cnblogs.com/">博客园</a></li>
<li><a id="blog_nav_myhome" class="menu" href="http://www.cnblogs.com/taceywong/">首页</a></li>
<li><a id="blog_nav_newpost" class="menu" rel="nofollow" href="https://i.cnblogs.com/EditPosts.aspx?opt=1">新随笔</a></li>
<li><a id="blog_nav_contact" class="menu" rel="nofollow" href="https://msg.cnblogs.com/send/Tacey%20Wong">联系</a></li>
<li><a id="blog_nav_rss" class="menu" href="http://www.cnblogs.com/taceywong/rss">订阅</a>
<!--<a id="blog_nav_rss_image" class="aHeaderXML" href="http://www.cnblogs.com/taceywong/rss"><img src="//www.cnblogs.com/images/xml.gif" alt="订阅" /></a>--></li>
<li><a id="blog_nav_admin" class="menu" rel="nofollow" href="https://i.cnblogs.com/">管理</a></li>
</ul>
		<div class="blogStats">
			
			<div id="blog_stats">
<span id="stats_post_count">随笔 - 77&nbsp; </span>
<span id="stats_article_count">文章 - 0&nbsp; </span>
<span id="stats-comment_count">评论 - 10</span>
</div>
			
		</div><!--end: blogStats -->
	</div><!--end: navigator 博客导航栏 -->
</div><!--end: header 头部 -->

<div id="main">
	<div id="mainContent">
	<div class="forFlow">
		
<div id="post_detail">
<!--done-->
<div id="topics">
	<div class="post">
		<h1 class="postTitle">
			<a id="cb_post_title_url" class="postTitle2" href="http://www.cnblogs.com/taceywong/p/5447556.html">Python生成二维码脚本</a>
		</h1>
		<div class="clear"></div>
		<div class="postBody">
			<div id="cnblogs_post_body" class="cnblogs-markdown"><p>简单的记录下二维码生成和解析的Python代码</p>
<p>依赖下面三个包：</p>
<ul>
<li>PIL（图像处理包，安装：<code>pip install PIL</code>）</li>
<li>qrcode(二维码生成包，安装：<code>pip install qrcode</code>)</li>
<li>zbarlight(二维码解析包,安装:<code>pip install zbarlight</code>)</li>
</ul>
<p>具体脚本：</p>
<div class="sourceCode"><pre class="sourceCode python"><code class="sourceCode python hljs"><span class="co"><span class="hljs-comment"># coding: utf-8</span></span>
<span class="co"><span class="hljs-string">"""</span></span><span class="hljs-string">
</span><span class="co"><span class="hljs-string">filename: qrcode.py</span></span><span class="hljs-string">
</span><span class="co"><span class="hljs-string">Created by Tacey Wong at 16-9-22 下午10:34 </span></span><span class="hljs-string">
</span><span class="co"><span class="hljs-string">"""</span></span>

<span class="im"><span class="hljs-keyword">import</span></span> zbar
<span class="im"><span class="hljs-keyword">import</span></span> qrcode
<span class="im"><span class="hljs-keyword">from</span></span> PIL <span class="im"><span class="hljs-keyword">import</span></span> Image
<span class="im"><span class="hljs-keyword">import</span></span> os, sys


<span class="kw"><span class="hljs-function"><span class="hljs-keyword">def</span></span></span><span class="hljs-function"> <span class="hljs-title">gen_qrcode</span><span class="hljs-params">(string, path, logo</span></span><span class="op"><span class="hljs-function"><span class="hljs-params">=</span></span></span><span class="st"><span class="hljs-function"><span class="hljs-params"><span class="hljs-string">""</span></span></span></span><span class="hljs-function"><span class="hljs-params">)</span>:</span>
    <span class="co"><span class="hljs-string">"""</span></span><span class="hljs-string">
</span><span class="co"><span class="hljs-string">    生成中间带logo的二维码</span></span><span class="hljs-string">
</span><span class="co"><span class="hljs-string">    需要安装qrcode, PIL库</span></span><span class="hljs-string">
</span><span class="co"><span class="hljs-string">    @参数 string: 二维码字符串</span></span><span class="hljs-string">
</span><span class="co"><span class="hljs-string">    @参数 path: 生成的二维码保存路径</span></span><span class="hljs-string">
</span><span class="co"><span class="hljs-string">    @参数 logo: logo文件路径</span></span><span class="hljs-string">
</span><span class="co"><span class="hljs-string">    @return: None</span></span><span class="hljs-string">
</span><span class="co"><span class="hljs-string">    """</span></span>
    qr <span class="op">=</span> qrcode.QRCode(
        version<span class="op">=</span><span class="dv"><span class="hljs-number">2</span></span>,
        error_correction<span class="op">=</span>qrcode.constants.ERROR_CORRECT_H,
        box_size<span class="op">=</span><span class="dv"><span class="hljs-number">8</span></span>,
        border<span class="op">=</span><span class="dv"><span class="hljs-number">1</span></span>
    )
    qr.add_data(string)
    qr.make(fit<span class="op">=</span><span class="va"><span class="hljs-keyword">True</span></span>)
    img <span class="op">=</span> qr.make_image()
    img <span class="op">=</span> img.convert(<span class="st"><span class="hljs-string">"RGBA"</span></span>)
    <span class="cf"><span class="hljs-keyword">if</span></span> logo <span class="op"><span class="hljs-keyword">and</span></span> os.path.exists(logo):
        <span class="cf"><span class="hljs-keyword">try</span></span>:
            icon <span class="op">=</span> Image.<span class="bu">open</span>(logo)
            img_w, img_h <span class="op">=</span> img.size
        <span class="cf"><span class="hljs-keyword">except</span></span> <span class="pp">Exception</span>, e:
            <span class="bu"><span class="hljs-keyword">print</span></span> e
            sys.exit(<span class="dv"><span class="hljs-number">1</span></span>)
        factor <span class="op">=</span> <span class="dv"><span class="hljs-number">4</span></span>
        size_w <span class="op">=</span> <span class="bu">int</span>(img_w <span class="op">/</span> factor)
        size_h <span class="op">=</span> <span class="bu">int</span>(img_h <span class="op">/</span> factor)

        icon_w, icon_h <span class="op">=</span> icon.size
        <span class="cf"><span class="hljs-keyword">if</span></span> icon_w <span class="op">&gt;</span> size_w:
            icon_w <span class="op">=</span> size_w
        <span class="cf"><span class="hljs-keyword">if</span></span> icon_h <span class="op">&gt;</span> size_h:
            icon_h <span class="op">=</span> size_h
        icon <span class="op">=</span> icon.resize((icon_w, icon_h), Image.ANTIALIAS)

        w <span class="op">=</span> <span class="bu">int</span>((img_w <span class="op">-</span> icon_w) <span class="op">/</span> <span class="dv"><span class="hljs-number">2</span></span>)
        h <span class="op">=</span> <span class="bu">int</span>((img_h <span class="op">-</span> icon_h) <span class="op">/</span> <span class="dv"><span class="hljs-number">2</span></span>)
        icon <span class="op">=</span> icon.convert(<span class="st"><span class="hljs-string">"RGBA"</span></span>)
        img.paste(icon, (w, h), icon)
    img.save(path)
    <span class="co"><span class="hljs-comment"># 调用系统命令打开图片</span></span>
    <span class="co"><span class="hljs-comment"># xdg - open(opens a file or URL in the user's preferred application)</span></span>
    os.system(<span class="st"><span class="hljs-string">'xdg-open </span></span><span class="sc"><span class="hljs-string">%s</span></span><span class="st"><span class="hljs-string">'</span></span> <span class="op">%</span> path)


<span class="kw"><span class="hljs-function"><span class="hljs-keyword">def</span></span></span><span class="hljs-function"> <span class="hljs-title">decode_qrcode</span><span class="hljs-params">(path)</span>:</span>
    <span class="co"><span class="hljs-string">"""</span></span><span class="hljs-string">
</span><span class="co"><span class="hljs-string">    解析二维码信息</span></span><span class="hljs-string">
</span><span class="co"><span class="hljs-string">    @参数 path: 二维码图片路径</span></span><span class="hljs-string">
</span><span class="co"><span class="hljs-string">    @return: 二维码信息</span></span><span class="hljs-string">
</span><span class="co"><span class="hljs-string">    """</span></span>
    <span class="co"><span class="hljs-comment"># 创建图片扫描对象</span></span>
    scanner <span class="op">=</span> zbar.ImageScanner()
    <span class="co"><span class="hljs-comment"># 设置对象属性</span></span>
    scanner.parse_config(<span class="st"><span class="hljs-string">'enable'</span></span>)
    <span class="co"><span class="hljs-comment"># 打开含有二维码的图片</span></span>
    img <span class="op">=</span> Image.<span class="bu">open</span>(path).convert(<span class="st"><span class="hljs-string">'L'</span></span>)
    <span class="co"><span class="hljs-comment"># 获取图片的尺寸</span></span>
    width, height <span class="op">=</span> img.size
    <span class="co"><span class="hljs-comment"># 建立zbar图片对象并扫描转换为字节信息</span></span>
    qrCode <span class="op">=</span> zbar.Image(width, height, <span class="st"><span class="hljs-string">'Y800'</span></span>, img.tobytes())
    scanner.scan(qrCode)
    <span class="co"><span class="hljs-comment"># 组装解码信息</span></span>
    data <span class="op">=</span> <span class="st"><span class="hljs-string">''</span></span>
    <span class="cf"><span class="hljs-keyword">for</span></span> s <span class="op"><span class="hljs-keyword">in</span></span> qrCode:
        data <span class="op">+=</span> s.data
    <span class="co"><span class="hljs-comment"># 删除图片对象</span></span>
    <span class="kw"><span class="hljs-keyword">del</span></span> img
    <span class="co"><span class="hljs-comment"># 输出解码结果</span></span>
    <span class="cf"><span class="hljs-keyword">return</span></span> data


<span class="cf"><span class="hljs-keyword">if</span></span> <span class="va">__name__</span> <span class="op">==</span> <span class="st"><span class="hljs-string">"__main__"</span></span>:
    info <span class="op">=</span> <span class="st"><span class="hljs-string">"中华人民共和国合法公民——Tacey Wong</span></span><span class="ch"><span class="hljs-string">\n</span></span><span class="st"><span class="hljs-string">http://www.cnblogs.com/taceywong"</span></span>
    pic_path <span class="op">=</span> <span class="st"><span class="hljs-string">"qr.png"</span></span>
    icon_path <span class="op">=</span> <span class="st"><span class="hljs-string">"logo.png"</span></span>
    gen_qrcode(info, pic_path,logo_path )
    <span class="bu"><span class="hljs-keyword">print</span></span> decode_qrcode(pic_path)</code></pre></div>
<p>生成的二维码图片如下：</p>
<p><img src="Python%E7%94%9F%E6%88%90%E4%BA%8C%E7%BB%B4%E7%A0%81%E8%84%9A%E6%9C%AC%20-%20Tacey%20Wong%20-%20%E5%8D%9A%E5%AE%A2%E5%9B%AD_files/673170-20160429205506707-172435343.png" alt="生成的二维码图片"></p>
<p>扫描结果如下：</p>
<p><img src="Python%E7%94%9F%E6%88%90%E4%BA%8C%E7%BB%B4%E7%A0%81%E8%84%9A%E6%9C%AC%20-%20Tacey%20Wong%20-%20%E5%8D%9A%E5%AE%A2%E5%9B%AD_files/673170-20160922230525637-1703581627.png"></p>
<p>参考资料:<a href="https://pypi.python.org/pypi/qrcode" class="uri">https://pypi.python.org/pypi/qrcode</a></p>
</div><div id="MySignature"></div>
<div class="clear"></div>
<div id="blog_post_info_block">
<div id="BlogPostCategory">分类: <a href="http://www.cnblogs.com/taceywong/category/697360.html" target="_blank">Python相关</a>,<a href="http://www.cnblogs.com/taceywong/category/697361.html" target="_blank">图像处理与计算机视觉</a></div>
<div id="EntryTag">标签: <a href="http://www.cnblogs.com/taceywong/tag/pytohn/">pytohn</a>, <a href="http://www.cnblogs.com/taceywong/tag/%E4%BA%8C%E7%BB%B4%E7%A0%81/">二维码</a></div>
<div id="blog_post_info"><div id="green_channel">
        <a href="javascript:void(0);" id="green_channel_digg" onclick="DiggIt(5447556,cb_blogId,1);green_channel_success(this,'谢谢推荐！');">好文要顶</a>
            <a id="green_channel_follow" onclick="follow('a91bc6e4-913d-e411-b908-9dcfd8948a71');" href="javascript:void(0);">关注我</a>
    <a id="green_channel_favorite" onclick="AddToWz(cb_entryId);return false;" href="javascript:void(0);">收藏该文</a>
    <a id="green_channel_weibo" href="javascript:void(0);" title="分享至新浪微博" onclick="ShareToTsina()"><img src="Python%E7%94%9F%E6%88%90%E4%BA%8C%E7%BB%B4%E7%A0%81%E8%84%9A%E6%9C%AC%20-%20Tacey%20Wong%20-%20%E5%8D%9A%E5%AE%A2%E5%9B%AD_files/icon_weibo_24.png" alt=""></a>
    <a id="green_channel_wechat" href="javascript:void(0);" title="分享至微信" onclick="shareOnWechat()"><img src="Python%E7%94%9F%E6%88%90%E4%BA%8C%E7%BB%B4%E7%A0%81%E8%84%9A%E6%9C%AC%20-%20Tacey%20Wong%20-%20%E5%8D%9A%E5%AE%A2%E5%9B%AD_files/wechat.png" alt=""></a>
</div>
<div id="author_profile">
    <div id="author_profile_info" class="author_profile_info">
            <a href="http://home.cnblogs.com/u/taceywong/" target="_blank"><img src="Python%E7%94%9F%E6%88%90%E4%BA%8C%E7%BB%B4%E7%A0%81%E8%84%9A%E6%9C%AC%20-%20Tacey%20Wong%20-%20%E5%8D%9A%E5%AE%A2%E5%9B%AD_files/20160503211928.png" class="author_avatar" alt=""></a>
        <div id="author_profile_detail" class="author_profile_info">
            <a href="http://home.cnblogs.com/u/taceywong/">Tacey Wong</a><br>
            <a href="http://home.cnblogs.com/u/taceywong/followees">关注 - 5</a><br>
            <a href="http://home.cnblogs.com/u/taceywong/followers">粉丝 - 16</a>
        </div>
    </div>
    <div class="clear"></div>
    <div id="author_profile_honor"></div>
    <div id="author_profile_follow">
                <a href="javascript:void(0);" onclick="follow('a91bc6e4-913d-e411-b908-9dcfd8948a71');return false;">+加关注</a>
    </div>
</div>
<div id="div_digg">
    <div class="diggit" onclick="votePost(5447556,'Digg')">
        <span class="diggnum" id="digg_count">0</span>
    </div>
    <div class="buryit" onclick="votePost(5447556,'Bury')">
        <span class="burynum" id="bury_count">0</span>
    </div>
    <div class="clear"></div>
    <div class="diggword" id="digg_tips">
    </div>
</div>
</div>
<div class="clear"></div>
<div id="post_next_prev"><a href="http://www.cnblogs.com/taceywong/p/5447479.html" class="p_n_p_prefix">« </a> 上一篇：<a href="http://www.cnblogs.com/taceywong/p/5447479.html" title="发布于2016-04-29 19:51">自动抓取信息定时发布到微博</a><br><a href="http://www.cnblogs.com/taceywong/p/5449647.html" class="p_n_p_prefix">» </a> 下一篇：<a href="http://www.cnblogs.com/taceywong/p/5449647.html" title="发布于2016-04-30 22:46">用2263份证件照图片样本测试how-old.net的人脸识别</a><br></div>
</div>


		</div>
		<div class="postDesc">posted @ <span id="post-date">2016-04-29 20:54</span> <a href="http://www.cnblogs.com/taceywong/">Tacey Wong</a> 阅读(<span id="post_view_count">163</span>) 评论(<span id="post_comment_count">0</span>)  <a href="https://i.cnblogs.com/EditPosts.aspx?postid=5447556" rel="nofollow">编辑</a> <a href="#" onclick="AddToWz(5447556);return false;">收藏</a></div>
	</div>
	<script src="Python%E7%94%9F%E6%88%90%E4%BA%8C%E7%BB%B4%E7%A0%81%E8%84%9A%E6%9C%AC%20-%20Tacey%20Wong%20-%20%E5%8D%9A%E5%AE%A2%E5%9B%AD_files/highlight.js"></script><script>markdown_highlight();</script><script type="text/javascript">var allowComments=true,cb_blogId=230350,cb_entryId=5447556,cb_blogApp=currentBlogApp,cb_blogUserGuid='a91bc6e4-913d-e411-b908-9dcfd8948a71',cb_entryCreatedDate='2016/4/29 20:54:00';loadViewCount(cb_entryId);</script>
	
</div><!--end: topics 文章、评论容器-->
</div><a name="!comments"></a><div id="blog-comments-placeholder"></div><script type="text/javascript">var commentManager = new blogCommentManager();commentManager.renderComments(0);</script>
<div id="comment_form" class="commentform">
<a name="commentform"></a>
<div id="divCommentShow"></div>
<div id="comment_nav"><span id="span_refresh_tips"></span><a href="javascript:void(0);" onclick="return RefreshCommentList();" id="lnk_RefreshComments" runat="server" clientidmode="Static">刷新评论</a><a href="#" onclick="return RefreshPage();">刷新页面</a><a href="#top">返回顶部</a></div>
<div id="comment_form_container"><div class="login_tips">注册用户登录后才能发表评论，请 <a rel="nofollow" href="javascript:void(0);" class="underline" onclick="return login('commentform');">登录</a> 或 <a rel="nofollow" href="javascript:void(0);" class="underline" onclick="return register();">注册</a>，<a href="http://www.cnblogs.com/">访问</a>网站首页。</div></div>
<div class="ad_text_commentbox" id="ad_text_under_commentbox"></div>
<div id="ad_t2"><a href="http://www.ucancode.com/index.htm" target="_blank">【推荐】50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库</a><br><a href="https://group.cnblogs.com/topic/75389.html" target="_blank">【活动】优达学城正式发布“无人驾驶车工程师”课程</a><br><a href="http://rongcloud.cn/reports/journal2" target="_blank">【推荐】融云发布 App 社交化白皮书 IM 提升活跃超 8 倍</a><br><a href="http://www.gcpowertools.com.cn/products/componentone_studio_enterprise.htm?utm_source=cnblogs&amp;utm_medium=blogpage&amp;utm_term=bottom&amp;utm_content=C1&amp;utm_campaign=community" target="_blank">【推荐】别再闷头写代码！找对工具，事半功倍，全能开发工具包用起来</a><br><a href="http://netease.im/?hmsr=bky10&amp;from=bky10" target="_blank">【推荐】网易这个云产品做了15年才面世，1年吸引10万+开发者</a><br></div>
<div id="opt_under_post"></div>
<div id="ad_c1" class="c_ad_block"><a href="http://q.cnblogs.com/" target="_blank"><img src="Python%E7%94%9F%E6%88%90%E4%BA%8C%E7%BB%B4%E7%A0%81%E8%84%9A%E6%9C%AC%20-%20Tacey%20Wong%20-%20%E5%8D%9A%E5%AE%A2%E5%9B%AD_files/q-cnblogs-com-20160923.png" alt="" width="300" height="250"></a></div>
<div id="under_post_news"><div class="itnews c_ad_block"><b>最新IT新闻</b>:<br> ·  <a href="http://news.cnblogs.com/n/555915/" target="_blank">关于硅谷精英的真相：他们和你一样买不起房</a><br> ·  <a href="http://news.cnblogs.com/n/555914/" target="_blank">阿里云发布混合云安全解决方案</a><br> ·  <a href="http://news.cnblogs.com/n/555913/" target="_blank">Windows Server 2016及System Center 2016正式商用</a><br> ·  <a href="http://news.cnblogs.com/n/555912/" target="_blank">创业十年，把六间房卖了26亿的刘岩说：创业是野蛮者的游戏</a><br> ·  <a href="http://news.cnblogs.com/n/555911/" target="_blank">Magic Leap再爆新专利：头戴设备更轻便</a><br>» <a href="http://news.cnblogs.com/" title="IT新闻" target="_blank">更多新闻...</a></div></div>
<div id="ad_c2" class="c_ad_block"><a href="https://www.jiguang.cn/devservice/?from=cnblogs01" target="_blank"><img src="Python%E7%94%9F%E6%88%90%E4%BA%8C%E7%BB%B4%E7%A0%81%E8%84%9A%E6%9C%AC%20-%20Tacey%20Wong%20-%20%E5%8D%9A%E5%AE%A2%E5%9B%AD_files/24442-20161011141820868-1378717477.jpg" alt="" width="468" height="60"></a></div>
<div id="under_post_kb"><div class="itnews c_ad_block" id="kb_block"><b>最新知识库文章</b>:<br><div id="kb_recent"> ·  <a href="http://kb.cnblogs.com/page/555750/" target="_blank">循序渐进地代码重构</a><br> ·  <a href="http://kb.cnblogs.com/page/554496/" target="_blank">技术的正宗与野路子</a><br> ·  <a href="http://kb.cnblogs.com/page/553682/" target="_blank">陈皓：什么是工程师文化？</a><br> ·  <a href="http://kb.cnblogs.com/page/551422/" target="_blank">没那么难，谈CSS的设计模式</a><br> ·  <a href="http://kb.cnblogs.com/page/550625/" target="_blank">程序猿媳妇儿注意事项</a><br></div>» <a href="http://kb.cnblogs.com/" target="_blank">更多知识库文章...</a></div></div>
<div id="HistoryToday" class="c_ad_block"></div>
<script type="text/javascript">
    fixPostBody();
    setTimeout(function () { incrementViewCount(cb_entryId); }, 50);
    deliverAdT2();
    deliverAdC1();
    deliverAdC2();    
    loadNewsAndKb();
    loadBlogSignature();
    LoadPostInfoBlock(cb_blogId, cb_entryId, cb_blogApp, cb_blogUserGuid);
    GetPrevNextPost(cb_entryId, cb_blogId, cb_entryCreatedDate);
    loadOptUnderPost();
    GetHistoryToday(cb_blogId, cb_blogApp, cb_entryCreatedDate);   
</script>
</div>


	</div><!--end: forFlow -->
	</div><!--end: mainContent 主体内容容器-->

	<div id="sideBar">
		<div id="sideBarMain">
			
<!--done-->
<div class="newsItem">
<h3 class="catListTitle">公告</h3>
	<div id="blog-news">
<noscript><a href="http://www.51.la/?18640342" target="_blank"><img alt="&#x6211;&#x8981;&#x5566;&#x514D;&#x8D39;&#x7EDF;&#x8BA1;" src="http://img.users.51.la/18640342.asp" style="border:none" /></a></noscript>
<div id="clustrmaps-widget"></div><a target="_top" href="http://www.clustrmaps.com/map/cnblogs.com/taceywong?utm_source=widget&amp;utm_medium=js_widget_control&amp;utm_campaign=widget_ctr" id="clustrmaps-widget-v2" class="clustrmaps-map-control"><div class="clustrmaps-map-container"><div class="clustrmaps-visitors">2444 visitors</div><div class="clustrmaps-date">Oct. 01st - Oct. 31st</div><div class="clustrmaps-logo"></div><div class="clustrmaps-connection clustrmaps-live">live</div><div class="clustrmaps-map liveDotsReady"><div class="jvectormap-container" style="background-color: transparent;"><svg width="180" height="100"><defs></defs><g transform="scale(0.16666666666666669) translate(89.9999999999999, 79.64684462793348)"></g><g></g><g style="visibility: visible;"><circle data-index="0" cx="133.73211273165236" cy="43.15572001925115" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="4" class="jvectormap-marker jvectormap-element"></circle><circle data-index="1" cx="135.82355910724016" cy="47.37416724803479" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="3" class="jvectormap-marker jvectormap-element"></circle><circle data-index="2" cx="132.4223816863343" cy="50.93711311014446" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="3" class="jvectormap-marker jvectormap-element"></circle><circle data-index="3" cx="128.97934528959905" cy="45.53105806890148" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="4" cx="132.79101611654477" cy="51.19349923346496" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="5" cx="135.30676977753382" cy="47.719159051024036" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="6" cx="128.5898439721356" cy="47.54820024303779" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="7" cx="34.219721974680226" cy="44.376973114299176" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="8" cx="134.72934127347042" cy="46.90533547304187" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="9" cx="130.61889835483709" cy="45.880677673259065" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="10" cx="132.8494851346275" cy="47.58791741018634" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="11" cx="132.5402795993134" cy="45.68043414556932" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="12" cx="132.36545681790824" cy="48.680625710533164" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="13" cx="134.0611418098568" cy="43.54131641710977" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="14" cx="135.3946193728687" cy="45.00963938654148" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="15" cx="138.01470747012252" cy="40.21438326154811" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="16" cx="131.20863832237973" cy="52.279309044660785" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="17" cx="133.9862296846187" cy="44.73751589874675" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="18" cx="135.48789435888938" cy="47.255190900437945" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="19" cx="134.1045866691174" cy="46.99684793774862" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="20" cx="137.46081681488045" cy="41.17728951970275" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="21" cx="136.67204847671923" cy="42.231709616395335" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="22" cx="134.64291062646873" cy="47.3279351705383" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="23" cx="132.79798565688725" cy="51.30315748926338" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="24" cx="134.94982080418504" cy="49.63189706042217" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="25" cx="132.80495519722973" cy="51.317754648982465" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="26" cx="143.45679166568948" cy="45.204076469066095" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="27" cx="134.438915936684" cy="50.335310193303094" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="28" cx="133.26749062007843" cy="43.17499571519521" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="29" cx="133.54222405765063" cy="48.51289315493435" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="30" cx="135.88607630144998" cy="47.90902939423986" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="31" cx="129.62738734012635" cy="48.052865871217385" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="32" cx="56.77991539442295" cy="48.76155796211778" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="33" cx="135.87585152669607" cy="50.08716968370658" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="34" cx="54.076693618353445" cy="43.3712147925617" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="35" cx="35.80819289992313" cy="45.98143625537585" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="36" cx="130.36352938863564" cy="51.069039816379124" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="37" cx="143.48112245622644" cy="45.254751264894466" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="38" cx="135.65674921054017" cy="50.768285245132525" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="39" cx="128.47528476111694" cy="45.02974895233388" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="40" cx="132.37292716354483" cy="50.97666642621541" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="41" cx="128.0271057566983" cy="50.08730294663818" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="42" cx="54.18006817780451" cy="42.91624044617612" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="43" cx="44.677120787717136" cy="44.09660932205033" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="44" cx="128.50182744170274" cy="60.2169082666118" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="45" cx="135.3946193728687" cy="45.00963938654148" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="46" cx="135.51769227388655" cy="48.76182880013516" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="47" cx="133.60853902534052" cy="50.78935585770102" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="48" cx="36.30111051061209" cy="46.583381053385914" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="49" cx="135.2917038849372" cy="46.289654241714544" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="50" cx="135.9080700006146" cy="43.653560810607885" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="51" cx="143.48241620323614" cy="45.20645202442445" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="52" cx="132.12306705557808" cy="46.47202707948562" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="53" cx="130.99183136382163" cy="42.79886248298055" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="54" cx="132.55501162171396" cy="51.30596311871068" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="55" cx="44.952146361710895" cy="47.55489774327269" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="56" cx="34.09518839155467" cy="44.325517535423764" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="57" cx="138.1524289259919" cy="44.30430571708921" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="58" cx="145.87071491688425" cy="77.45056163366091" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="59" cx="132.81188300379767" cy="51.28851430166143" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="60" cx="135.44507550624633" cy="48.831222839748655" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="61" cx="132.09719211538447" cy="44.2286048089656" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="62" cx="86.13616185602703" cy="38.57093386433284" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="63" cx="129.69578899654147" cy="49.3985012078732" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="64" cx="133.09976258033925" cy="43.57520797401407" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="65" cx="83.613647323568" cy="42.915400790449596" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="66" cx="134.26100485596544" cy="50.3204697238753" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="67" cx="128.47853999552842" cy="60.186186910947264" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="68" cx="88.65859292093705" cy="38.49263706358528" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="69" cx="34.29238047609496" cy="44.41404382634679" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="70" cx="135.61814546912223" cy="50.21886776736179" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="71" cx="128.87676367186356" cy="47.18366273479473" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="72" cx="83.82486195634227" cy="34.588138307523245" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="73" cx="132.83971943139312" cy="51.35425993170429" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="74" cx="55.491259905230315" cy="41.95585659439878" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="75" cx="34.43490131603255" cy="43.782664991635535" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="76" cx="44.74460430109315" cy="46.58463692803786" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="77" cx="54.35096798440611" cy="42.59908653296512" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="78" cx="127.13429511869397" cy="54.97122864446417" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="79" cx="83.30903250344956" cy="34.65884632196842" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="80" cx="135.64481335103147" cy="50.19127501496675" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="81" cx="136.12149652343766" cy="44.33722901620592" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="82" cx="132.61715321195322" cy="50.97380717566407" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="83" cx="35.96924353574131" cy="45.99246561624154" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="84" cx="149.02169835962735" cy="72.5132074126002" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="85" cx="131.18555954507798" cy="49.97929302874967" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="86" cx="52.044008397269955" cy="41.22822600791142" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="87" cx="132.81885254414016" cy="51.281235731669405" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="88" cx="158.14236437524085" cy="78.9514752064995" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="89" cx="52.4075930407652" cy="44.08243045807608" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="90" cx="54.295503798087786" cy="42.719910943618146" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="91" cx="84.48529893789785" cy="35.15959650697476" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="92" cx="34.19297062522196" cy="39.2039730619438" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="93" cx="48.564830551812584" cy="42.098321172381915" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="94" cx="133.3573434365896" cy="43.68334213289276" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="95" cx="145.6575387967082" cy="77.32665476086176" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="96" cx="48.86840202756837" cy="42.88585663212591" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="97" cx="36.72449965297426" cy="46.11783503672557" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="98" cx="52.60223936506063" cy="42.881655942332344" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="99" cx="134.05296199005363" cy="45.91724123509072" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="100" cx="134.43115345462593" cy="44.67893995903118" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="101" cx="88.60191845515806" cy="38.62961197553341" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="102" cx="54.273927436668245" cy="42.787328891353425" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="103" cx="158.6805213974942" cy="77.26436396810615" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="104" cx="55.46434162067403" cy="41.88699883636727" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="105" cx="148.26840372979615" cy="75.45463817381471" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="106" cx="51.79026704827419" cy="43.30277703922381" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="107" cx="130.85469418079532" cy="49.3671468520001" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="108" cx="49.978854299620885" cy="46.10757630432926" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="109" cx="54.34420711293615" cy="42.83453712199485" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="110" cx="138.56071044198296" cy="40.43798880703537" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="111" cx="135.38547967625192" cy="51.14960112255017" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="112" cx="141.71649326879424" cy="45.67911376076699" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="113" cx="82.68269201566528" cy="35.385189435317535" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="114" cx="54.000571213654716" cy="42.93559842195539" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="115" cx="34.07290255596854" cy="39.44966296885858" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="116" cx="102.84786758406443" cy="49.657125007305005" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="117" cx="134.9804116608978" cy="49.781992700196646" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="118" cx="149.00458751207998" cy="72.45877114188632" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="119" cx="47.081153134353976" cy="41.21736985677006" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="120" cx="134.38399428943427" cy="45.855710513430836" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="121" cx="132.35281148423297" cy="51.17155267728969" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="122" cx="55.18184570104371" cy="41.98434958902654" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="123" cx="34.25966119688235" cy="44.388096735242" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="124" cx="148.21861533681067" cy="75.42524964797937" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="125" cx="54.65433079128936" cy="42.469084626282914" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="126" cx="34.297722399231716" cy="44.3667626049929" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="127" cx="52.28147357420842" cy="45.175134955804396" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="128" cx="54.35163572479819" cy="42.728336475170714" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="129" cx="132.04156099396812" cy="47.85043868382025" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="130" cx="143.40228735618484" cy="45.19642656758902" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="131" cx="87.20383700921101" cy="36.64569710242199" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="132" cx="54.252309341474195" cy="42.73086388486787" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="133" cx="33.84720630344073" cy="38.36034125603254" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="134" cx="117.26404877918031" cy="41.49438691832293" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="135" cx="135.04985666167562" cy="45.346308508639474" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="136" cx="132.72841545478593" cy="51.25198442387189" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="137" cx="156.68360202116224" cy="79.40219083101196" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="138" cx="55.46263053591928" cy="41.95198600795287" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="139" cx="45.337015230204145" cy="47.982305031925314" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="140" cx="38.437128557372155" cy="46.154406827315206" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="141" cx="88.13358203765307" cy="41.33905360697107" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="142" cx="54.352094796317765" cy="42.74280557610197" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="143" cx="135.3243814303753" cy="50.9914011937008" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="144" cx="132.54758300985196" cy="51.33966821540086" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="145" cx="84.67873498273262" cy="36.31543563940721" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="146" cx="54.262367181130124" cy="42.75340724652701" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="147" cx="133.4713601085396" cy="49.25264649056914" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="148" cx="48.44555542427478" cy="42.12573672692567" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="149" cx="135.3598551387053" cy="47.13310670655033" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="150" cx="134.61269537372652" cy="50.10999909875252" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="151" cx="50.04746462490856" cy="42.72625499240612" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="152" cx="145.69710241493976" cy="77.36314212490392" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="153" cx="132.91008257521003" cy="45.65185117455565" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="154" cx="87.19953843043692" cy="36.64160420866411" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="155" cx="54.59081198649141" cy="42.76276871976478" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="156" cx="121.71787719444804" cy="41.21757374900996" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="157" cx="55.50027440052359" cy="41.91427086156726" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="158" cx="34.06864571096894" cy="44.205426580396676" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="159" cx="140.66480215124602" cy="72.3015179850336" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="160" cx="35.86002624785941" cy="45.95725901133178" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="161" cx="131.30930018648792" cy="51.723421634222895" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="162" cx="54.13854307217117" cy="42.73279653217452" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="163" cx="135.77514792881334" cy="50.135752761671505" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="164" cx="35.997079963336745" cy="46.08930336656574" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="165" cx="131.7664519524253" cy="48.28777074952882" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="166" cx="49.982902475747956" cy="43.29625252892883" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="167" cx="53.71052148083884" cy="42.829541080961626" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="168" cx="121.71766852557552" cy="48.08147226727094" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="169" cx="133.81270065022323" cy="45.33933966383555" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="170" cx="53.475435129047206" cy="42.078214261307785" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="171" cx="129.334082372899" cy="51.849635421469124" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="172" cx="157.77564969865767" cy="78.88674381922074" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="173" cx="55.44464327910726" cy="42.03014790085098" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="174" cx="148.26264446891435" cy="75.44624680627878" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="175" cx="52.8596115524384" cy="43.64653973844656" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="176" cx="34.136504828315495" cy="44.16083133004481" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="177" cx="131.96114001049528" cy="46.914362556465655" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="178" cx="131.42936825574134" cy="49.2392312866608" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="179" cx="48.605980053475385" cy="46.32627139175529" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="180" cx="53.331787477197956" cy="42.07585709989033" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="181" cx="139.1358435884485" cy="41.74134592686911" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="182" cx="54.10937116379156" cy="42.87448932978971" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="183" cx="34.09844362596613" cy="39.23553454035722" fill="#FF0000" stroke="#ffffff" fill-opacity="0.7" stroke-width="0.5" stroke-opacity="1" r="2" class="jvectormap-marker jvectormap-element"></circle><circle data-index="36126775" cx="132.79101611654477" cy="51.19349923346496" fill="#F8A400" stroke="#FFFFFF" fill-opacity="1" stroke-width="0.4" stroke-opacity="1" r="3" class="jvectormap-marker jvectormap-element"></circle><circle data-index="264191255" cx="35.80819289992313" cy="45.98143625537585" fill="#F8A400" stroke="#FFFFFF" fill-opacity="1" stroke-width="0.4" stroke-opacity="1" r="3" class="jvectormap-marker jvectormap-element"></circle><circle data-index="199561957" cx="135.61814546912223" cy="50.21886776736179" fill="#F8A400" stroke="#FFFFFF" fill-opacity="1" stroke-width="0.4" stroke-opacity="1" r="3" class="jvectormap-marker jvectormap-element"></circle><circle data-index="281938031" cx="128.97934528959905" cy="45.53105806890148" fill="#F8A400" stroke="#FFFFFF" fill-opacity="1" stroke-width="0.4" stroke-opacity="1" r="3" class="jvectormap-marker jvectormap-element"></circle><circle data-index="127127323" cx="132.79101611654477" cy="51.19349923346496" fill="#F8A400" stroke="#FFFFFF" fill-opacity="1" stroke-width="0.4" stroke-opacity="1" r="3" class="jvectormap-marker jvectormap-element"></circle><circle data-index="281141287" cx="133.73211273165236" cy="43.15572001925115" fill="#F8A400" stroke="#FFFFFF" fill-opacity="1" stroke-width="0.4" stroke-opacity="1" r="3" class="jvectormap-marker jvectormap-element"></circle><circle data-index="34767217" cx="135.48789435888938" cy="47.255190900437945" fill="#F8A400" stroke="#FFFFFF" fill-opacity="1" stroke-width="0.4" stroke-opacity="1" r="3" class="jvectormap-marker jvectormap-element"></circle><circle data-index="252715345" cx="135.82355910724016" cy="47.37416724803479" fill="#F8A400" stroke="#FFFFFF" fill-opacity="1" stroke-width="0.4" stroke-opacity="1" r="4" class="jvectormap-marker jvectormap-element"></circle></g><g></g></svg><div class="jvectormap-legend-cnt jvectormap-legend-cnt-h"></div><div class="jvectormap-legend-cnt jvectormap-legend-cnt-v"></div></div></div></div><div class="clustrmaps-bottom-text">Click to see details</div><div class="clustrmaps-bottom-text variation">Click to Enlarge Map</div><div class=""></div></a><style type="text/css">.jvectormap-container {    width: 100%;    height: 100%;    position: relative;    overflow: hidden;}.jvectormap-tip {    position: absolute;    display: none;    border: solid 1px #CDCDCD;    border-radius: 3px;    background: #292929;    color: white;    font-family: Arial, Helvetica, sans-serif;    padding: 3px;    z-index: 999;    font-size: 11px;    line-height: 13px;}.jvectormap-zoomin, .jvectormap-zoomout, .jvectormap-goback {    background: #ffffff none repeat scroll 0 0;    border: 1px solid #bebebe;    border-radius: 2px;    box-sizing: content-box;    color: #838383;    cursor: pointer;    font-weight: bold;    left: 10px;    padding: 3px;    position: absolute;    text-align: center;    z-index: 1;}.jvectormap-zoomin, .jvectormap-zoomout {    padding: 2px 10px;}.jvectormap-zoomin {    top: 10px;}.jvectormap-zoomout {    top: 37px;}.jvectormap-goback {    bottom: 10px;    z-index: 1000;    padding: 6px;}.jvectormap-spinner {    position: absolute;    left: 0;    top: 0;    right: 0;    bottom: 0;    background: center no-repeat url();}.jvectormap-legend-title {    font-weight: bold;    font-size: 14px;    text-align: center;}.jvectormap-legend-cnt {    position: absolute;}.jvectormap-legend-cnt-h {    bottom: 0;    right: 0;}.jvectormap-legend-cnt-v {    top: 0;    right: 0;}.jvectormap-legend {    background: black;    color: white;    border-radius: 3px;}.jvectormap-legend-cnt-h .jvectormap-legend {    float: left;    margin: 0 10px 10px 0;    padding: 3px 3px 1px 3px;}.jvectormap-legend-cnt-h .jvectormap-legend .jvectormap-legend-tick {    float: left;}.jvectormap-legend-cnt-v .jvectormap-legend {    margin: 10px 10px 0 0;    padding: 3px;}.jvectormap-legend-cnt-h .jvectormap-legend-tick {    width: 40px;}.jvectormap-legend-cnt-h .jvectormap-legend-tick-sample {    height: 15px;}.jvectormap-legend-cnt-v .jvectormap-legend-tick-sample {    height: 20px;    width: 20px;    display: inline-block;    vertical-align: middle;}.jvectormap-legend-tick-text {    font-size: 12px;}.jvectormap-legend-cnt-h .jvectormap-legend-tick-text {    text-align: center;}.jvectormap-legend-cnt-v .jvectormap-legend-tick-text {    display: inline-block;    vertical-align: middle;    line-height: 20px;    padding-left: 3px;}</style><style type="text/css">a#clustrmaps-widget-v2, #clustrmaps-widget-v2 {    color: #ffffff;    display: block;    font-size: 11px;    line-height: 13px;    margin: 0 auto;    padding: 0;    position: relative;    text-align: center;    width: 180px;    min-height: 139px;    text-decoration: none;    text-shadow: 1px 1px 0 #01324f;    border: 0 none;}#clustrmaps-widget-v2 > .clustrmaps-map-container {    background-color: #2875ab;    background-position: 0 0;    background-repeat: no-repeat;    height: 122px;    position: relative;}#clustrmaps-widget-v2 > .clustrmaps-map-container > .clustrmaps-map {    width: 100%;    height: 100px;}#clustrmaps-widget-v2 > .clustrmaps-map-container > .clustrmaps-date {    position: absolute;    text-align: center;    top: 12px;    width: 100%;    z-index: 10;}#clustrmaps-widget-v2 > .clustrmaps-map-container > .clustrmaps-logo {    position: absolute;    background-image: url("//cdn.clustrmaps.com/assets/clustrmaps/img/logo4-small.png");    bottom: 0px;    background-repeat: no-repeat;    background-position: center center;    z-index: 1;    width: 100px;    height: 31px;    left: 0px;}#clustrmaps-widget-v2 > .clustrmaps-map-container > .clustrmaps-connection {    background-position: center center;    background-repeat: no-repeat;    bottom: 0;    color: rgba(255, 255, 255, 0.5);    padding: 4px 4px;    position: absolute;    right: 0;    z-index: 1;    font-variant: small-caps;}#clustrmaps-widget-v2 > .clustrmaps-bottom-text {    letter-spacing: 0px;    background: #FFFFFF;    color: #000000;    text-shadow: none;}#clustrmaps-widget-v2 > .clustrmaps-cursor-click {    background-position: center center;    background-repeat: no-repeat;    display: block;    height: 29px;    position: absolute;    right: 0;    top: 56px;    width: 30px;}#clustrmaps-widget-v2 > .clustrmaps-map-container > .clustrmaps-connection.clustrmaps-failed {    color: rgba(255, 0, 0, 0.8);}#clustrmaps-widget-v2 > .clustrmaps-map-container {    background-image: url("//cdn.clustrmaps.com/images/map_v2_loading.png");}#clustrmaps-widget-v2 > .clustrmaps-cursor-click {    background-image: url("//cdn.clustrmaps.com/assets/clustrmaps/img/cursor_click.png");}#clustrmaps-widget-v2 > .clustrmaps-bottom-text.variation {    display: none;}/* CONTROL */#clustrmaps-widget-v2.clustrmaps-map-control > .clustrmaps-map-container {    background-image: url("//cdn.clustrmaps.com/images/map_v2-control.png");}#clustrmaps-widget-v2.clustrmaps-map-control > .clustrmaps-bottom-text {    -webkit-border-radius: 3px;    -moz-border-radius: 3px;    border-radius: 3px;    border: 1px solid #999;    background: #F24D58;    background: -moz-linear-gradient(top, #FF636D 50%, #DD2929 50%);    background: -webkit-gradient(linear, left top, left bottom, color-stop(50%,#f83737), color-stop(50%,#f83737));    background: linear-gradient(to bottom, #FF636D 50%,#DD2929 51%);    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr="#FF636D", endColorstr="#f83737",GradientType=0 );    display: block;    margin: 2px auto 0;    padding: 3px 14px;    color: #FFFFFF;    text-shadow: 1px 1px 0px #5B0000;    font-weight: 600;}#clustrmaps-widget-v2.clustrmaps-map-control  > .clustrmaps-bottom-text:hover {    border: 1px solid #888;    background: #a3f5a2;    background: -moz-linear-gradient(top,  #ed8b92 50%, #D76666 50%);    background: -webkit-gradient(linear, left top, left bottom, color-stop(50%,#ed8b92), color-stop(50%,#D76666));    background: linear-gradient(to bottom, #ed8b92 50%,#D76666 51%);    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr="#ed8b92", endColorstr="#D76666",GradientType=0 );}#clustrmaps-widget-v2.clustrmaps-map-control > .clustrmaps-bottom-text.variation {    display: none;}/* VARIATION */#clustrmaps-widget-v2.clustrmaps-map-variation > .clustrmaps-map-container {    background-image: url("//cdn.clustrmaps.com/images/map_v2-control.png");}#clustrmaps-widget-v2.clustrmaps-map-variation > .clustrmaps-bottom-text {    -webkit-border-radius: 3px;    -moz-border-radius: 3px;    border-radius: 3px;    border: 1px solid #999;    background: #F24D58;    background: -moz-linear-gradient(top, #FF636D 50%, #DD2929 50%);    background: -webkit-gradient(linear, left top, left bottom, color-stop(50%,#f83737), color-stop(50%,#f83737));    background: linear-gradient(to bottom, #FF636D 50%,#DD2929 51%);    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr="#FF636D", endColorstr="#f83737",GradientType=0 );    display: block;    margin: 2px auto 0;    padding: 3px 14px;    color: #FFFFFF;    text-shadow: 1px 1px 0px #5B0000;    font-weight: 600;}#clustrmaps-widget-v2.clustrmaps-map-variation > .clustrmaps-bottom-text {    display: none;}#clustrmaps-widget-v2.clustrmaps-map-variation > .clustrmaps-bottom-text.variation {    display: block;}#clustrmaps-widget-v2.clustrmaps-map-variation  > .clustrmaps-bottom-text:hover {    border: 1px solid #888;    background: #a3f5a2;    background: -moz-linear-gradient(top,  #ed8b92 50%, #D76666 50%);    background: -webkit-gradient(linear, left top, left bottom, color-stop(50%,#ed8b92), color-stop(50%,#D76666));    background: linear-gradient(to bottom, #ed8b92 50%,#D76666 51%);    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr="#ed8b92", endColorstr="#D76666",GradientType=0 );}.clustrmaps-visitors, .clustrmaps-date, .clustrmaps-bottom-text {    font-family: Arial, Helvetica, sans-serif;    font-size: 11px;    line-height: 13px;    text-align: center;    font-weight: normal;    color: white;}.clustrmaps-bottom-text {    font-size: 12px;}</style><noscript><a href="http://www3.clustrmaps.com/user/a97120453"><img src="http://www3.clustrmaps.com/stats/maps-no_clusters/www.cnblogs.com-taceywong-thumb.jpg" alt="Locations of visitors to this page" /></a></noscript>

<a href="https://github.com/taceywong"><img src="Python%E7%94%9F%E6%88%90%E4%BA%8C%E7%BB%B4%E7%A0%81%E8%84%9A%E6%9C%AC%20-%20Tacey%20Wong%20-%20%E5%8D%9A%E5%AE%A2%E5%9B%AD_files/GITOSC.PNG"></a><div id="profile_block">昵称：<a href="http://home.cnblogs.com/u/taceywong/">Tacey Wong</a><br>园龄：<a href="http://home.cnblogs.com/u/taceywong/" title="入园时间：2014-09-16">2年1个月</a><br>粉丝：<a href="http://home.cnblogs.com/u/taceywong/followers/">16</a><br>关注：<a href="http://home.cnblogs.com/u/taceywong/followees/">5</a><div id="p_b_follow"><a href="javascript:void(0);" onclick="follow('a91bc6e4-913d-e411-b908-9dcfd8948a71')">+加关注</a></div></div></div><script type="text/javascript">loadBlogNews();</script>
</div>

			<div id="blog-calendar" style=""><table id="blogCalendar" class="Cal" title="Calendar" cellspacing="0" cellpadding="0">
	<tbody><tr><td colspan="7"><table class="CalTitle" cellspacing="0">
		<tbody><tr><td class="CalNextPrev"><a href="javascript:void(0);" onclick="loadBlogCalendar('2016/09/01');return false;">&lt;</a></td><td align="center">2016年10月</td><td class="CalNextPrev" align="right"><a href="javascript:void(0);" onclick="loadBlogCalendar('2016/11/01');return false;">&gt;</a></td></tr>
	</tbody></table></td></tr><tr><th class="CalDayHeader" abbr="日" scope="col" align="center">日</th><th class="CalDayHeader" abbr="一" scope="col" align="center">一</th><th class="CalDayHeader" abbr="二" scope="col" align="center">二</th><th class="CalDayHeader" abbr="三" scope="col" align="center">三</th><th class="CalDayHeader" abbr="四" scope="col" align="center">四</th><th class="CalDayHeader" abbr="五" scope="col" align="center">五</th><th class="CalDayHeader" abbr="六" scope="col" align="center">六</th></tr><tr><td class="CalOtherMonthDay" align="center">25</td><td class="CalOtherMonthDay" align="center">26</td><td class="CalOtherMonthDay" align="center">27</td><td class="CalOtherMonthDay" align="center">28</td><td class="CalOtherMonthDay" align="center">29</td><td class="CalOtherMonthDay" align="center">30</td><td class="CalWeekendDay" align="center">1</td></tr><tr><td class="CalWeekendDay" align="center">2</td><td align="center">3</td><td align="center"><a href="http://www.cnblogs.com/taceywong/archive/2016/10/04.html"><u>4</u></a></td><td align="center"><a href="http://www.cnblogs.com/taceywong/archive/2016/10/05.html"><u>5</u></a></td><td align="center">6</td><td align="center">7</td><td class="CalWeekendDay" align="center">8</td></tr><tr><td class="CalWeekendDay" align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td class="CalWeekendDay" align="center">15</td></tr><tr><td class="CalWeekendDay" align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td class="CalWeekendDay" align="center">22</td></tr><tr><td class="CalWeekendDay" align="center">23</td><td align="center">24</td><td align="center">25</td><td class="CalTodayDay" align="center">26</td><td align="center">27</td><td align="center">28</td><td class="CalWeekendDay" align="center">29</td></tr><tr><td class="CalWeekendDay" align="center">30</td><td align="center">31</td><td class="CalOtherMonthDay" align="center">1</td><td class="CalOtherMonthDay" align="center">2</td><td class="CalOtherMonthDay" align="center">3</td><td class="CalOtherMonthDay" align="center">4</td><td class="CalOtherMonthDay" align="center">5</td></tr>
</tbody></table></div><script type="text/javascript">loadBlogDefaultCalendar();</script>
			
			<div id="leftcontentcontainer">
				<div id="blog-sidecolumn"><div id="sidebar_search" class="sidebar-block">
<div id="sidebar_search" class="mySearch">
<h3 class="catListTitle">搜索</h3>
<div id="sidebar_search_box">
<div id="widget_my_zzk" class="div_my_zzk"><input id="q" onkeydown="return zzk_go_enter(event);" class="input_my_zzk" type="text">&nbsp;<input onclick="zzk_go()" value="找找看" id="btnZzk" class="btn_my_zzk" type="button"></div>
<div id="widget_my_google" class="div_my_zzk"><input name="google_q" id="google_q" onkeydown="return google_go_enter(event)" class="input_my_zzk" type="text">&nbsp;<input onclick="google_go()" value="谷歌搜索" class="btn_my_zzk" type="button"></div>
</div>
</div>

</div><div id="sidebar_shortcut" class="sidebar-block">
<div class="catListLink">
<h3 class="catListTitle">常用链接</h3>
<ul>
<li><a href="http://www.cnblogs.com/taceywong/p/" title="我的博客的随笔列表">我的随笔</a></li><li><a href="http://www.cnblogs.com/taceywong/MyComments.html" title="我发表过的评论列表">我的评论</a></li><li><a href="http://www.cnblogs.com/taceywong/OtherPosts.html" title="我评论过的随笔列表">我的参与</a></li><li><a href="http://www.cnblogs.com/taceywong/RecentComments.html" title="我的博客的评论列表">最新评论</a></li><li><a href="http://www.cnblogs.com/taceywong/tag/" title="我的博客的标签列表">我的标签</a></li>
</ul>
<div id="itemListLin_con" style="display:none;">
<ul>

</ul>
</div>
</div></div><div id="sidebar_toptags" class="sidebar-block">
<div class="catListTag">
<h3 class="catListTitle">我的标签</h3>
<ul>
<li><a href="http://www.cnblogs.com/taceywong/tag/python/">python</a>(20)</li><li><a href="http://www.cnblogs.com/taceywong/tag/Scikit-learn/">Scikit-learn</a>(16)</li><li><a href="http://www.cnblogs.com/taceywong/tag/redis/">redis</a>(3)</li><li><a href="http://www.cnblogs.com/taceywong/tag/%E5%B0%8F%E9%A1%B9%E7%9B%AE/">小项目</a>(2)</li><li><a href="http://www.cnblogs.com/taceywong/tag/%E6%95%B0%E6%8D%AE%E7%A7%91%E5%AD%A6%E5%AE%B6/">数据科学家</a>(2)</li><li><a href="http://www.cnblogs.com/taceywong/tag/excel/">excel</a>(2)</li><li><a href="http://www.cnblogs.com/taceywong/tag/java/">java</a>(2)</li><li><a href="http://www.cnblogs.com/taceywong/tag/json/">json</a>(1)</li><li><a href="http://www.cnblogs.com/taceywong/tag/matplotlib/">matplotlib</a>(1)</li><li><a href="http://www.cnblogs.com/taceywong/tag/mysql/">mysql</a>(1)</li><li><a href="http://www.cnblogs.com/taceywong/tag/">更多</a></li>
</ul>
</div></div><div id="sidebar_categories">
<div id="sidebar_postcategory" class="catListPostCategory sidebar-block">
<h3 class="catListTitle">随笔分类</h3>

<ul>

<li><a id="CatList_LinkList_0_Link_0" href="http://www.cnblogs.com/taceywong/category/741127.html">C&amp;C++(1)</a> </li>

<li><a id="CatList_LinkList_0_Link_1" href="http://www.cnblogs.com/taceywong/category/877272.html">Java相关</a> </li>

<li><a id="CatList_LinkList_0_Link_2" href="http://www.cnblogs.com/taceywong/category/823993.html">Linux&amp;shell(2)</a> </li>

<li><a id="CatList_LinkList_0_Link_3" href="http://www.cnblogs.com/taceywong/category/825196.html">NLP</a> </li>

<li><a id="CatList_LinkList_0_Link_4" href="http://www.cnblogs.com/taceywong/category/697360.html">Python相关(26)</a> </li>

<li><a id="CatList_LinkList_0_Link_5" href="http://www.cnblogs.com/taceywong/category/741552.html">web开发&amp;架构(1)</a> </li>

<li><a id="CatList_LinkList_0_Link_6" href="http://www.cnblogs.com/taceywong/category/850387.html">读书笔记(1)</a> </li>

<li><a id="CatList_LinkList_0_Link_7" href="http://www.cnblogs.com/taceywong/category/821396.html">工具配置&amp;工具使用(12)</a> </li>

<li><a id="CatList_LinkList_0_Link_8" href="http://www.cnblogs.com/taceywong/category/697356.html">机器学习&amp;数据挖掘(27)</a> </li>

<li><a id="CatList_LinkList_0_Link_9" href="http://www.cnblogs.com/taceywong/category/697362.html">基础算法(2)</a> </li>

<li><a id="CatList_LinkList_0_Link_10" href="http://www.cnblogs.com/taceywong/category/741130.html">技术思考(1)</a> </li>

<li><a id="CatList_LinkList_0_Link_11" href="http://www.cnblogs.com/taceywong/category/862461.html">数据采集(1)</a> </li>

<li><a id="CatList_LinkList_0_Link_12" href="http://www.cnblogs.com/taceywong/category/741131.html">数据可视化(11)</a> </li>

<li><a id="CatList_LinkList_0_Link_13" href="http://www.cnblogs.com/taceywong/category/741128.html">数据库相关(4)</a> </li>

<li><a id="CatList_LinkList_0_Link_14" href="http://www.cnblogs.com/taceywong/category/697358.html">数学相关(1)</a> </li>

<li><a id="CatList_LinkList_0_Link_15" href="http://www.cnblogs.com/taceywong/category/697361.html">图像处理与计算机视觉(3)</a> </li>

<li><a id="CatList_LinkList_0_Link_16" href="http://www.cnblogs.com/taceywong/category/741132.html">小项目(5)</a> </li>

</ul>

</div>

<div id="sidebar_postarchive" class="catListPostArchive sidebar-block">
<h3 class="catListTitle">随笔档案</h3>

<ul>

<li><a id="CatList_LinkList_1_Link_0" href="http://www.cnblogs.com/taceywong/archive/2016/10.html">2016年10月 (13)</a> </li>

<li><a id="CatList_LinkList_1_Link_1" href="http://www.cnblogs.com/taceywong/archive/2016/09.html">2016年9月 (10)</a> </li>

<li><a id="CatList_LinkList_1_Link_2" href="http://www.cnblogs.com/taceywong/archive/2016/08.html">2016年8月 (14)</a> </li>

<li><a id="CatList_LinkList_1_Link_3" href="http://www.cnblogs.com/taceywong/archive/2016/07.html">2016年7月 (1)</a> </li>

<li><a id="CatList_LinkList_1_Link_4" href="http://www.cnblogs.com/taceywong/archive/2016/06.html">2016年6月 (4)</a> </li>

<li><a id="CatList_LinkList_1_Link_5" href="http://www.cnblogs.com/taceywong/archive/2016/05.html">2016年5月 (6)</a> </li>

<li><a id="CatList_LinkList_1_Link_6" href="http://www.cnblogs.com/taceywong/archive/2016/04.html">2016年4月 (11)</a> </li>

<li><a id="CatList_LinkList_1_Link_7" href="http://www.cnblogs.com/taceywong/archive/2015/10.html">2015年10月 (13)</a> </li>

<li><a id="CatList_LinkList_1_Link_8" href="http://www.cnblogs.com/taceywong/archive/2015/06.html">2015年6月 (5)</a> </li>

</ul>

</div>

<div id="sidebar_links700968" class="catList sidebar-block">
<h3 class="catListTitle">机器学习&amp;数据挖掘</h3>

<ul>

<li><a id="CatList_LinkList_2_Link_0" href="http://nvie.com/" rel="nofollow"> Vincent Driessen</a> </li>

<li><a id="CatList_LinkList_2_Link_1" href="http://blog.codinglabs.org/" rel="nofollow">CodingLabs</a> </li>

<li><a id="CatList_LinkList_2_Link_2" href="http://get.ftqq.com/" rel="nofollow">Get社区</a> </li>

<li><a id="CatList_LinkList_2_Link_3" href="http://www.infoq.com/" rel="nofollow">infoq</a> </li>

<li><a id="CatList_LinkList_2_Link_4" href="http://nbviewer.ipython.org/" rel="nofollow">Notebook在线</a> </li>

<li><a id="CatList_LinkList_2_Link_5" href="http://www.scotthyoung.com/blog/" rel="nofollow">Scott Young</a> </li>

<li><a id="CatList_LinkList_2_Link_6" href="http://blog.csdn.net/v_JULY_v" rel="nofollow">结构之法 算法之道</a> </li>

<li><a id="CatList_LinkList_2_Link_7" href="http://www.cppblog.com/vczh/" rel="nofollow">轮子哥</a> </li>

<li><a id="CatList_LinkList_2_Link_8" href="http://www.cnblogs.com/lanxuezaipiao" rel="nofollow">敏敏</a> </li>

<li><a id="CatList_LinkList_2_Link_9" href="http://blog.niubua.com/" rel="nofollow">牛吧大数据</a> </li>

<li><a id="CatList_LinkList_2_Link_10" href="http://www.ruanyifeng.com/" rel="nofollow">阮一峰</a> </li>

<li><a id="CatList_LinkList_2_Link_11" href="http://deepfuture.iteye.com/" rel="nofollow">深未来</a> </li>

</ul>

</div>

</div><div id="sidebar_recentcomments" class="sidebar-block"><div id="recent_comments_wrap">
<div class="catListComment">
<h3 class="catListTitle">最新评论</h3>

	<div id="RecentCommentsBlock"><ul>
        <li class="recent_comment_title"><a href="http://www.cnblogs.com/taceywong/p/5468224.html#3425100">1. Re:解决matplotlib的中文问题</a></li>
        <li class="recent_comment_body">我前几天也碰到这个问题 (来自博客园v3.3.0)</li>
        <li class="recent_comment_author">--rw_rongwei</li>
        <li class="recent_comment_title"><a href="http://www.cnblogs.com/taceywong/p/5449647.html#3422250">2. Re:用2263份证件照图片样本测试how-old.net的人脸识别</a></li>
        <li class="recent_comment_body">@cjw1115没多查相关的信息，直接就奔网站去了~~...</li>
        <li class="recent_comment_author">--Tacey Wong</li>
        <li class="recent_comment_title"><a href="http://www.cnblogs.com/taceywong/p/5449647.html#3421028">3. Re:用2263份证件照图片样本测试how-old.net的人脸识别</a></li>
        <li class="recent_comment_body">微软牛津计划的一部分。。。。看到楼主那么辛苦的抓包分析真累。。。</li>
        <li class="recent_comment_author">--cjw1115</li>
        <li class="recent_comment_title"><a href="http://www.cnblogs.com/taceywong/p/5449647.html#3420751">4. Re:用2263份证件照图片样本测试how-old.net的人脸识别</a></li>
        <li class="recent_comment_body">@sun8134我个倒霉孩子~~~...</li>
        <li class="recent_comment_author">--Tacey Wong</li>
        <li class="recent_comment_title"><a href="http://www.cnblogs.com/taceywong/p/5449647.html#3420740">5. Re:用2263份证件照图片样本测试how-old.net的人脸识别</a></li>
        <li class="recent_comment_body">其实这玩意是开放api的<br>api能获取的信息还稍微多几个</li>
        <li class="recent_comment_author">--sun8134</li>
</ul>
</div>
</div>
</div></div><div id="sidebar_topviewedposts" class="sidebar-block"><div id="topview_posts_wrap">
<div class="catListView">
<h3 class="catListTitle">阅读排行榜</h3>
	<div id="TopViewPostsBlock"><ul><li><a href="http://www.cnblogs.com/taceywong/p/4568806.html">1. [译]使用scikit-learn进行机器学习(scikit-learn教程1)(3283)</a></li><li><a href="http://www.cnblogs.com/taceywong/p/4570155.html">2. [译]针对科学数据处理的统计学习教程（scikit-learn教程2）(1418)</a></li><li><a href="http://www.cnblogs.com/taceywong/p/5449647.html">3. 用2263份证件照图片样本测试how-old.net的人脸识别(1109)</a></li><li><a href="http://www.cnblogs.com/taceywong/p/4871444.html">4. [译]从零开始成为数据科学家的9个步骤(1077)</a></li><li><a href="http://www.cnblogs.com/taceywong/p/4858933.html">5. 一种简单的图像隐写(1014)</a></li></ul></div>
</div>
</div></div><div id="sidebar_topcommentedposts" class="sidebar-block"><div id="topfeedback_posts_wrap">
<div class="catListFeedback">
<h3 class="catListTitle">评论排行榜</h3>
	<div id="TopFeedbackPostsBlock"><ul><li><a href="http://www.cnblogs.com/taceywong/p/5449647.html">1. 用2263份证件照图片样本测试how-old.net的人脸识别(4)</a></li><li><a href="http://www.cnblogs.com/taceywong/p/4871444.html">2. [译]从零开始成为数据科学家的9个步骤(4)</a></li><li><a href="http://www.cnblogs.com/taceywong/p/4568601.html">3. 怎样成为一个数据科学家：针对大学毕业生的指导（译）(1)</a></li><li><a href="http://www.cnblogs.com/taceywong/p/5468224.html">4. 解决matplotlib的中文问题(1)</a></li></ul></div>
</div>
</div></div><div id="sidebar_topdiggedposts" class="sidebar-block"><div id="topdigg_posts_wrap">
<div class="catListView">
<h3 class="catListTitle">推荐排行榜</h3>
<div id="TopDiggPostsBlock"><ul><li><a href="http://www.cnblogs.com/taceywong/p/4871444.html">1. [译]从零开始成为数据科学家的9个步骤(7)</a></li><li><a href="http://www.cnblogs.com/taceywong/p/5447479.html">2. 自动抓取信息定时发布到微博(2)</a></li><li><a href="http://www.cnblogs.com/taceywong/p/5436055.html">3. 自动发带图的微博(1)</a></li><li><a href="http://www.cnblogs.com/taceywong/p/5428356.html">4. 使用Python将Excel中的数据导入到MySQL(1)</a></li><li><a href="http://www.cnblogs.com/taceywong/p/4859278.html">5. Python汉英/英汉翻译（百度API/有道API）(1)</a></li></ul></div>
</div></div></div></div><script type="text/javascript">loadBlogSideColumn();</script>
			</div>
			
		</div><!--end: sideBarMain -->
	</div><!--end: sideBar 侧边栏容器 -->
	<div class="clear"></div>
	</div><!--end: main -->
	<div class="clear"></div>
	<div id="footer">
		
<!--done-->
Copyright ©2016 Tacey Wong
	</div><!--end: footer -->
</div><!--end: home 自定义的最大容器 -->


<div class="jvectormap-tip"></div></body></html>